package com.jiahuiwen.singleton;

import java.io.IOException;
import java.io.InputStream;
import java.util.Properties;

/**
 * 使用单例模式的 饿汉风格读取配置文件信息.
 * 该app优化了单例模式， 实现线程的安全，在需要的时候才new对象.
 * 
 * bug: 该版本暂时还不可以读取配置文件的信息。
 * 
 * @author jiahui.wen
 * @version 1.0
 */
public class AdvancedSingletonConfig {
	
	
		private String parameterA;
		private String parameterB;
		
		/**
		 * 内部类， 调用时装载。
		 * @author jiahui.wen
		 *
		 */
		private static class singletonHandle {
			public static AdvancedSingletonConfig instance = new AdvancedSingletonConfig();
		}
		
		public static AdvancedSingletonConfig getInstance() {
			return singletonHandle.instance;
		}
	 	

		
		public String getParameterA() {
			return parameterA;
		}



		public String getParameterB() {
			return parameterB;
		}


		
		private void readConfig() {
			// TODO Auto-generated method stub
			Properties p = new Properties();
			InputStream in = null;
			
			try {
				in = SingletonConfig.class.getResourceAsStream("AppConfig.properties");
				p.load(in);
				parameterA = p.getProperty("paramA");

				parameterB = p.getProperty("paramB");

			} catch (IOException e) {
				System.out.println("装载配置文件出错");
				e.printStackTrace();
			} finally {
				try {
					in.close();
				} catch (IOException e) {
					e.printStackTrace();
				}
			}
		}
		
		


}
